This invention relates in general to digital processing and more specifically to automated configuration of servers in a collection of servers such as a server farm.
Many of today's computer applications require large numbers of separate computers coupled by a network to perform large scale or large volume computing tasks. Tasks such as web page serving, database processing and accessing, transaction processing, etc., can require very large collections of processing devices, such as computers. The computers are coordinated to provide services that form a part of the overall task. These large collections of coordinated servers are referred to as server “farms.” Server farms can include tens, hundreds, thousands or more separate computer systems, or servers. The servers are usually interconnected by a common network and are provided with centralized control or management.
Because of the changing demands of the tasks, servers are often added to the active server “pools.” Sometimes the addition of servers is in response to an increased workload or traffic condition. For example, a web site may be more active at certain times of the day. Or a company may be growing in popularity so that a steady increase in traffic is seen over time. Servers may be removed from a pool and then added back at a later time due to maintenance, cost, or other considerations.
When a server is added to a pool, or brought “online” it is designated for a service within the pool. An added server may be configured to perform one or more different services. Examples of services include serving a web page or class of web pages, running an application or class of application; etc. A pool may be a group of physical servers, or a more logical entity such as a group of servers that perform a specific function or provide a specific service.
Usually it is necessary to configure the system (e.g., server farm) to allow an added server to perform a service. It may be necessary to configure the network to route traffic to the added server and to allow the added server to have access to network resources appropriate for the service the added server is to perform. For example, depending on the service assigned to a server, different software may need to be loaded into the server, interconnections and protocols established, or other setup, configuration and management performed on the added server or on the network and other devices within the system.
Typically, the configuration of a server involves human action. Often a new server is completely configured manually. In other approaches, a degree of automation may be provided such as allowing a human network administrator to designate that the new server be provided with a type or category of service or other group of resources. These approaches, even with partial automation, can become tedious, time consuming and error-prone especially where the server farm is large and has changing service demands. Adding a server to a pool may also require other devices, such as load balancers, to be configured or changed manually.